using Game.Core;
using Game.Main.Model;
using Game.Main.View;
using UnityEngine;

namespace Game.Component
{
	public class CreateItemMachineItem : BaseItem
	{
		public override void Init(ItemArchiveData data)
		{
			base.Init(data);
		}

		public override void ResetState()
		{
			base.ResetState();
			CreateItem();
		}

		private void CreateItem()
		{
			if (childItems.Count <= 0 && base.itemData.createIds != null && archiveData.createIndexs.Count < base.itemData.createAmount)
			{
				Transform transform = model.Find("CreatePoint");
				Vector3 vector = ((!(transform != null)) ? base.transform.position : transform.position);
				BaseItem baseItem = Singleton<Scene>.Instance.CreateItem(base.itemData.createIds[0], vector, 0);
				AttachItem(baseItem, DepthType.Back, AttachType.Place, false);
				baseItem.depthSystem.SortBaseNode();
				AddCreateItem(baseItem);
			}
		}

		public override void ReleaseAttachItem(BaseItem item)
		{
			base.ReleaseAttachItem(item);
			CreateItem();
		}

		public override void RemoveCreateItem(BaseItem item)
		{
			base.RemoveCreateItem(item);
			CreateItem();
		}
	}
}
